package com.literaryfamily.literaryfamily.service.user;

import com.literaryfamily.literaryfamily.entity.UserPoints;
import com.literaryfamily.literaryfamily.model.ReturnResult;

/**
 * 所有涉及读写的方法都需要抛出 WriteError 数据库读写错误异常(这个是运行时异常,只需要抛出不需要处理)
 * 此接口所有方法均不检查用户身份,应该验证身份后在进行检查
 *
 * @author 滑稽/因果报应
 */
public interface UserPointsService {
    /**
     * 增减积分
     *
     * @param userId 添加的用户ID
     * @param point  积分数量(为负数时为减少)
     * @param msg    添加原因/信信息
     * @return 添加记录
     */
    UserPoints changePoints(Long userId, double point, String msg);

    /**
     * 获取积分增减记录
     *
     * @param userId  获取的用户
     * @param page    记录页数
     * @param maxSize 一页数量
     * @return 历史记录信息
     */
    UserPoints getPointsHistoryList(Long userId, int page, int maxSize);
}